#ifndef REGISTROMEMORIA_H_
#define REGISTROMEMORIA_H_

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Registro.h"
#include "ComponenteAlmacenamiento.h"
#include "../Dato.h"
#include "../../exceptions/MemoryStorageException.h"
#include "../../exceptions/PKException.h"
#include "../../exceptions/NullPointerException.h"
#include "../../enums/TipoMemoria.h"

using namespace std;

class RegistroMemoria : public Registro{
	private:
		void *p;
		void escribirEnMemoria(TipoSerializacion modo);

	public:
		RegistroMemoria(TipoMemoria tipo, int tamanio, void* accesoMemoria);
		RegistroMemoria(TipoMemoria tipo, int tamanio, void* accesoMemoria, Dato *dato);
		void getAccesoDato(void **accesoDato);
		int getId();
		void leer(Dato *datoLeido, TipoSerializacion modo);
		void escribir(void *accesoMemoria, TipoSerializacion modo);
		void escribir(TipoSerializacion modo);
		void escribir(void *accesoMemoria, Dato *dato, TipoSerializacion modo);
		void borrar();
};


#endif /*REGISTROMEMORIA_H_*/
